আনসিবল (Ansible)

ফাইল কপি করা (copy মডিউল)

Latest Technologies - আনসিবল (Ansible) - ফাইল এবং ডিরেক্টরি ম্যানেজমেন্ট | NCTB BOOK

Ansible এ copy মডিউল ব্যবহার করে আপনি লোকাল মেশিন (যেখান থেকে প্লেবুক রান করা হচ্ছে) থেকে একটি ফাইল বা ডিরেক্টরি রিমোট হোস্টে কপি করতে পারেন। এটি একটি সাধারণ এবং সহজ মডিউল যা ফাইল কনফিগারেশন, স্ক্রিপ্ট ডিপ্লয়মেন্ট, বা নির্দিষ্ট টেমপ্লেট কপি করার জন্য ব্যবহৃত হয়।

copy মডিউলের সাধারণ ব্যবহার

copy মডিউল ব্যবহার করার জন্য, আপনি src এবং dest নামের দুটি প্যারামিটার ব্যবহার করেন:

  • src: সোর্স ফাইল বা ডিরেক্টরি যা লোকাল মেশিন থেকে কপি করা হবে।
  • dest: ডেস্টিনেশন পাথ যেখানে রিমোট হোস্টে ফাইল বা ডিরেক্টরি কপি করা হবে।

copy মডিউলের উদাহরণ

---
- name: Copy a file to remote hosts
  hosts: all
  become: yes
  tasks:
    - name: Copy the Apache config file
      copy:
        src: /local/path/to/apache.conf
        dest: /etc/apache2/apache2.conf
        owner: root
        group: root
        mode: '0644'

উপরের প্লেবুকে copy মডিউল ব্যবহার করা হয়েছে /local/path/to/apache.conf ফাইলটি /etc/apache2/apache2.conf পাথে রিমোট হোস্টে কপি করার জন্য। এখানে:

  • src: সোর্স ফাইল যা লোকাল মেশিন থেকে কপি করা হবে।
  • dest: ডেস্টিনেশন পাথ যেখানে ফাইলটি রিমোট হোস্টে কপি হবে।
  • owner: ফাইলের মালিকানা সেট করা হয়েছে root
  • group: ফাইলের গ্রুপ সেট করা হয়েছে root
  • mode: ফাইল পারমিশন সেট করা হয়েছে '0644'

copy মডিউলের অন্যান্য গুরুত্বপূর্ণ প্যারামিটার

  • backup: যদি yes করা হয়, তাহলে Ansible ডেস্টিনেশন ফাইলের একটি ব্যাকআপ কপি রাখবে যদি ফাইলটি আগে থেকেই থাকে। উদাহরণ:
copy:
  src: /path/to/file
  dest: /destination/path
  backup: yes
  • force: ডিফল্টভাবে yes, যার মানে Ansible সোর্স ফাইলের সাথে মিলিয়ে ডেস্টিনেশন ফাইল পরিবর্তন করবে। যদি আপনি ফোর্স করা বন্ধ করতে চান, তাহলে force: no ব্যবহার করতে পারেন।
  • remote_src: যদি আপনি রিমোট হোস্টের একটি ফাইল অন্য পাথে কপি করতে চান, তাহলে remote_src: yes ব্যবহার করতে হবে।
copy:
  src: /path/on/remote/host/file.txt
  dest: /another/path/on/remote/host/file.txt
  remote_src: yes

উদাহরণ ১: ফোল্ডার কপি করা

- name: Copy a directory recursively
  copy:
    src: /local/path/to/directory/
    dest: /remote/path/to/directory/
    mode: '0755'

এখানে src ফোল্ডারটি dest ফোল্ডারে কপি করা হবে রিমোট হোস্টে। এটি রিকার্সিভলি (অর্থাৎ সাব-ডিরেক্টরি এবং ফাইল সহ) কপি করা হবে।

উদাহরণ ২: ব্যাকআপ সহ ফাইল কপি করা

- name: Backup and copy a file
  copy:
    src: /path/to/file.txt
    dest: /etc/config/file.txt
    backup: yes

এখানে, ফাইলটি কপি করার আগে যদি /etc/config/file.txt ফাইলটি থাকে, তাহলে তার একটি ব্যাকআপ তৈরি করা হবে।

সংক্ষেপে

Ansible এ copy মডিউলটি একটি সহজ কিন্তু শক্তিশালী টুল যা লোকার ফাইল বা ডিরেক্টরি রিমোট হোস্টে কপি করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন প্যারামিটার এবং অপশন সহ ব্যবহার করা যায়, যেমন: মালিকানা, পারমিশন, ব্যাকআপ এবং রিমোট সোর্স কপি। এই মডিউল ব্যবহার করে আপনি সহজেই আপনার কনফিগারেশন ফাইল, স্ক্রিপ্ট বা অন্যান্য টেমপ্লেট ফাইল ডিপ্লয় করতে পারেন।

Promotion